#include <iostream>

// 声明各个特性的演示函数
void demonstrate_auto_return_type();
void demonstrate_generic_lambdas();
void demonstrate_variable_templates();
void demonstrate_binary_literals();
void demonstrate_digit_separators();
void demonstrate_deprecated_attribute();
void demonstrate_smart_pointers();
void demonstrate_quoted();
void demonstrate_exchange();
void demonstrate_integer_sequence();

namespace cpp14 {

void demonstrate_features() {
    std::cout << "1. 函数返回类型推导(auto):\n";
    demonstrate_auto_return_type();
    std::cout << "\n";

    std::cout << "2. 泛型Lambda表达式:\n";
    demonstrate_generic_lambdas();
    std::cout << "\n";

    std::cout << "3. 变量模板:\n";
    demonstrate_variable_templates();
    std::cout << "\n";

    std::cout << "4. 二进制字面量:\n";
    demonstrate_binary_literals();
    std::cout << "\n";

    std::cout << "5. 数字分隔符:\n";
    demonstrate_digit_separators();
    std::cout << "\n";

    std::cout << "6. deprecated属性:\n";
    demonstrate_deprecated_attribute();
    std::cout << "\n";
    
    std::cout << "7. 智能指针增强(make_unique):\n";
    demonstrate_smart_pointers();
    std::cout << "\n";

    std::cout << "8. std::quoted:\n";
    demonstrate_quoted();
    std::cout << "\n";

    std::cout << "9. std::exchange:\n";
    demonstrate_exchange();
    std::cout << "\n";

    std::cout << "10. std::integer_sequence:\n";
    demonstrate_integer_sequence();
    std::cout << "\n";
}

} // namespace cpp14

